<?php
/**
 * Created by PhpStorm.
 * User: liuchaozhong
 * Date: 2018/8/24
 * Time: 下午3:10
 */
if(!function_exists('getIp')) {
     function getIp() {
        //strcasecmp 比较两个字符，不区分大小写。返回0，>0，<0。
        if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
            $ip = getenv('HTTP_CLIENT_IP');
        } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
            $ip = getenv('HTTP_X_FORWARDED_FOR');
        } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
            $ip = getenv('REMOTE_ADDR');
        } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
            $ip = $_SERVER['REMOTE_ADDR'];
        }
        $res =  preg_match ( '/[\d\.]{7,15}/', $ip, $matches ) ? $matches [0] : '';

         return  $res;
    }
}

//无符号右边移动 对应js >>> 无符号右移
function uright($a, $n)
{
    $c = 2147483647>>($n-1);
    return $c&($a>>$n);
}
//js charCOdeAt对应php函数
function _charCodeAt($len , $str){
    $d = $str{$len};
    return uniord($d);
}
function uniord($str,$from_encoding=false){
    $from_encoding=$from_encoding ? $from_encoding : 'UTF-8';
    if(strlen($str)==1)
        return ord($str);
    $str=mb_convert_encoding($str, 'UCS-4BE', $from_encoding);
    $tmp=unpack('N',$str);
    return $tmp[1];
}
function cr($t, $n) {
    for($e, $o , $r = -1, $i = 0, $a = strlen($t); $i < $a; ) {
        $e = _charCodeAt($i++, $t);
        // echo 'ee-'.$e.'--i:'.$i.'--t:'.$t[$i];
        // echo '<br/>';
        if($e < 128 ) {
            $r = uright($r,8) ^ $n[255 & ($r ^ $e)];
        } else{
            if($e < 2048){
                $r = uright($r,8) ^ $n[255 & ($r ^ (192 | $e >> 6 & 31))];
                $r = uright($r,8) ^ $n[255 & ($r ^ (128 | 63 & $e))];
            }
            else{
                if($e >= 55296 && $e < 57344){
                    $e = (1023 & $e) + 64;
                    $o = 1023 & _charCodeAt($i++, $t);
                    $r = uright($r,8) ^ $n[255 & ($r ^ (240 | $e >> 8 & 7))];
                    $r = uright($r,8) ^ $n[255 & ($r ^ (128 | $e >> 2 & 63))];
                    $r = uright($r,8) ^ $n[255 & ($r ^ (128 | $o >> 6 & 15 | (3 & $e) << 4))];
                    $r = uright($r,8) ^ $n[255 & ($r ^ (128 | 63 & $o))];
                }
                else{
                    $r = uright($r,8) ^ $n[255 & ($r ^ (224 | $e >> 12 & 15))];
                    $r = uright($r,8) ^ $n[255 & ($r ^ (128 | $e >> 6 & 63))];
                    $r = uright($r,8) ^ $n[255 & ($r ^ (128 | 63 & $e))];
                }
            }
        }
        // echo 'rr-:'.$r;
        // echo '<br/>';
    }

    return $r ^ -1;
}
//获取16随机数
function randstr()
{
    $a = range(0,9); for($i=0;$i<16;$i++){
        $b[] = array_rand($a);
    }

    return join('', $b);
}
$video_id = 'v02004bd0000bcngmtkeae1bqnbd4qhg';
function getUrl($video_id) {
    $n = ['0','1996959894','-301047508','-1727442502','124634137','1886057615','-379345611','-1637575261','249268274','2044508324','-522852066','-1747789432','162941995','2125561021','-407360249','-1866523247','498536548','1789927666','-205950648','-2067906082','450548861','1843258603','-187386543','-2083289657','325883990','1684777152','-43845254','-1973040660','335633487','1661365465','-99664541','-1928851979','997073096','1281953886','-715111964','-1570279054','1006888145','1258607687','-770865667','-1526024853','901097722','1119000684','-608450090','-1396901568','853044451','1172266101','-589951537','-1412350631','651767980','1373503546','-925412992','-1076862698','565507253','1454621731','-809855591','-1195530993','671266974','1594198024','-972236366','-1324619484','795835527','1483230225','-1050600021','-1234817731','1994146192','31158534','-1731059524','-271249366','1907459465','112637215','-1614814043','-390540237','2013776290','251722036','-1777751922','-519137256','2137656763','141376813','-1855689577','-429695999','1802195444','476864866','-2056965928','-228458418','1812370925','453092731','-2113342271','-183516073','1706088902','314042704','-1950435094','-54949764','1658658271','366619977','-1932296973','-69972891','1303535960','984961486','-1547960204','-725929758','1256170817','1037604311','-1529756563','-740887301','1131014506','879679996','-1385723834','-631195440','1141124467','855842277','-1442165665','-586318647','1342533948','654459306','-1106571248','-921952122','1466479909','544179635','-1184443383','-832445281','1591671054','702138776','-1328506846','-942167884','1504918807','783551873','-1212326853','-1061524307','-306674912','-1698712650','62317068','1957810842','-355121351','-1647151185','81470997','1943803523','-480048366','-1805370492','225274430','2053790376','-468791541','-1828061283','167816743','2097651377','-267414716','-2029476910','503444072','1762050814','-144550051','-2140837941','426522225','1852507879','-19653770','-1982649376','282753626','1742555852','-105259153','-1900089351','397917763','1622183637','-690576408','-1580100738','953729732','1340076626','-776247311','-1497606297','1068828381','1219638859','-670225446','-1358292148','906185462','1090812512','-547295293','-1469587627','829329135','1181335161','-882789492','-1134132454','628085408','1382605366','-871598187','-1156888829','570562233','1426400815','-977650754','-1296233688','733239954','1555261956','-1026031705','-1244606671','752459403','1541320221','-1687895376','-328994266','1969922972','40735498','-1677130071','-351390145','1913087877','83908371','-1782625662','-491226604','2075208622','213261112','-1831694693','-438977011','2094854071','198958881','-2032938284','-237706686','1759359992','534414190','-2118248755','-155638181','1873836001','414664567','-2012718362','-15766928','1711684554','285281116','-1889165569','-127750551','1634467795','376229701','-1609899400','-686959890','1308918612','956543938','-1486412191','-799009033','1231636301','1047427035','-1362007478','-640263460','1088359270','936918000','-1447252397','-558129467','1202900863','817233897','-1111625188','-893730166','1404277552','615818150','-1160759803','-841546093','1423857449','601450431','-1285129682','-1000256840','1567103746','711928724','-1274298825','-1022587231','1510334235','755167117'];

    $tt = '//ib.365yg.com/video/urls/v/1/toutiao/mp4/'.$video_id;
    $ts = '/video/urls/v/1/toutiao/mp4/'.$video_id;
    $random = randstr();
    $r = $ts.'?r='.$random;
    // echo $r;
    // echo '<br/>';
    $ss = cr($r, $n);
    while ($ss < 0) {
        $random = randstr();
        $r = $ts.'?r='.$random;
        $ss = cr($r, $n);
    }
    $http = 'http://ib.365yg.com'.$r.'&s='.$ss;

    return $http;
}